package com.yanxu.nio.c1;

import java.nio.ByteBuffer;

/**
 * @author 折戟沉沙铁未销
 * @version V1.0
 * @date 2024/12/22-2024
 * @Description: byteBuffer 内存空间开辟
 */
public class Test3_ByteBufferAllocate {
    public static void main(String[] args) {
        //分配一块 ByteBuffer 空间。
        //注意：一旦分配，空间大小就固定下来了，是不能动态的进行扩展的。
        ByteBuffer byteBuffer1= ByteBuffer.allocate(1024);
        ByteBuffer byteBuffer2 = ByteBuffer.allocateDirect(1024);
        /*
        * allocate() 使用的是java的堆内存。
        * allocateDirect() 使用的是直接内存。
        *
        * 1：堆内存    读写效率较低。  受到垃圾回收的影响（ 即：垃圾回收，导致数据出现碎片化，因此有整理的过程，在整理的过程，bytebuffer数据就会出现移动的现象。 ）
        * 2：直接内存  读写效率较高。  由于使用的是系统内存，因此不会受到垃圾回收的影响。使用系统内存，分配效率比较低。
        *
        * */

    }
}